home *** CD-ROM | disk | FTP | other *** search
- Name
-
- EXT_import_context
-
- Name Strings
-
- GLX_EXT_import_context
-
- Version
-
- $Date: 1995/09/30 02:31:16 $ $Revision: 1.1 $
-
- Number
-
- 47
-
- Dependencies
-
- None
-
- Overview
-
- This extension allows multiple X clients to share an indirect
- rendering context.
-
- An additional convenience procedure to get the current Display*
- bound to a context is also added.
-
- Issues
-
- Does glXImportGLXContext also need to take an XVisualInfo*?
- No. This information will be retrieved from the server.
-
- New Procedures and Functions
-
- Display *glXGetCurrentDisplayEXT();
-
- GLXContextID glXGetGLXContextIDEXT(const GLXContext ctx);
-
- GLXContext glXImportGLXContextEXT(
- Display *dpy, GLXContextID contextID);
-
- void glXFreeGLXContextEXT(Display *dpy, GLXContext ctx);
-
- New Tokens
-
- None
-
- Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
-
- None
-
- Additions to Chapter 3 of the 1.0 Specification (Rasterization)
-
- None
-
- Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
- and the Frame Buffer)
-
- None
-
- Additions to Chapter 5 of the 1.0 Specification (Special Functions)
-
- None
-
- Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
-
- None
-
- Additions to the GLX Specification
-
- [Add the following to Section 3.2.4 of the GLX Specification
- (Rendering Contexts)]
-
- glxGetCurrentDisplayEXT returns the current display associated
- with the current context.
-
- Display *glXGetCurrentDisplayEXT();
-
- If there is no current context, NULL is returned. No round trip
- is forced to the server; unlike most X calls that return a value,
- glXGetCurrentDisplayEXT does not flush any pending events.
-
- glXGetGLXContextIDEXT returns the XID associated with a GLXContext.
-
- GLXContextID glXGetGLXContextIDEXT(const GLXContext ctx);
-
- No round trip is forced to the server; unlike most X calls that
- return a value, glXGetGLXContextIDEXT does not flush any
- pending events.
-
- glXImportGLXContext creates a GLXContext given the XID of an
- existing GLXContext. It may be used in place of glXCreateContext,
- to share another process's indirect rendering context.
-
- GLXContext glXImportGLXContextEXT(
- Display *dpy, GLXContextID contextID);
-
- Only the server-side context information can be shared between
- X clients; client-side state, such as pixel storage modes,
- cannot be shared. Thus, glXImportGLXContextEXT, must allocate
- memory to store client-side information. This memory is freed
- by calling glXFreeGLXContextEXT.
-
- This call does not create a new XID. It merely makes an
- existing object available to the importing client (Display *).
- Like any XID, it goes away when the creating client drops its
- connection or the ID is explicitly deleted. Note that this is
- when the XID goes away. The object goes away when the XID
- goes away AND the context is not current to any thread.
-
- glXFreeGLXContext frees the client-side part of a GLXContext
- that was created with glXImportGLXContext.
-
- void glXFreeGLXContextEXT(Display *dpy, GLXContext ctx);
-
- glXFreeGLXContext does not free the server-side context information
- or the XID associated with the server-side context.
-
- Dependencies on SGI_extension_name
-
- None
-
- GLX Protocol
-
- One new GLX protocol command is added.
-
- GetContextInfo
- 1 CARD8 opcode (X assigned)
- 1 17 GLX opcode (glXVendorPrivateWithReply)
- 2 4 request length
- 4 15 vendor specific opcode
- 4 GLX_CONTEXT context id
- =>
- 1 1 Reply
- 1 unused
- 2 CARD16 sequence number
- 4 n reply length
- 4 VISUALID visual i.d.
- 4 CARD32 screen i.d.
- 4 GLX_CONTEXT share list
- 1 BOOL is_direct
- 11 unused
-
- Errors
-
- None
-
- New State
-
- None
-
- New Implementation Dependent State
-
- None
-